#ifndef FACEAUTHINTERFACE_H
#define FACEAUTHINTERFACE_H

#include <QObject>

class FaceAuthInterface : public QObject
{
    Q_OBJECT

public:
    enum FaceAuthResult
    {
        FaceAuth_OK = 0,
        FaceAuth_Init_Failed,
        FaceAuth_Finit_Failed,
        FaceAuth_Failed_InvalidImage,
        FaceAuth_Failed_Noface,
        FaceAuth_Failed_Multiface
    };

    struct FaceRecogResult
    {
        QString key;
        qreal confidence;
    };

public:
    explicit FaceAuthInterface(QObject *parent = nullptr);
    virtual ~FaceAuthInterface();

    virtual FaceAuthResult init();
    virtual FaceAuthResult finit();
    virtual FaceAuthResult face_detect(void* datainput, void* dataoutput);
    virtual FaceAuthResult face_regist(const QString key, void* datainput);
    virtual FaceAuthResult face_predict(void* datainput, FaceRecogResult& result);


};

#endif // FACEAUTHINTERFACE_H
